/**
 * 
 */
package compilador.analizadorSintactico.categoriasSintacticas;

import java.util.ArrayList;

import javax.swing.tree.DefaultMutableTreeNode;

/**
 * @author Nolberto Castellanos Rodriguez
 * @author Yurani Alejandra Salamanca Lotero
 *
 * Clase que representa la lista de importaciones
 */
public class Imports {
	
//	-------------------------------------------------------------------------------------------------
//	ATRIBUTOS
//	-------------------------------------------------------------------------------------------------	

	
	/**
	 *  Atributo que contiene la lista de importaciones
	 */
	private ArrayList<Import> importaciones;
	
	
//	-------------------------------------------------------------------------------------------------
//	CONSTRUCTOR
//	-------------------------------------------------------------------------------------------------	

	/**
	 * Constructor que permite crear una importacion
	 * @param importaciones. Lista de importaciones
	 */
	public Imports (ArrayList<Import> importaciones)
	{
		this.importaciones = importaciones;
	}


//	-------------------------------------------------------------------------------------------------
//	METODOS
//	-------------------------------------------------------------------------------------------------	

	/**
	 * @return
	 */
	public String getJavaCode() {
		String retornable ="";
		if(importaciones != null)
			for (Import importt: importaciones) {
				retornable += importt.getJavaCode()+"\n";
			}
		
		return retornable;
	}
	
	/**
	 * Metodo que permite agregar hojas al nodo de la clase
	 * @return el nodo de la clase con sus hojas
	 */
	public  DefaultMutableTreeNode getArbolVisual(){
		DefaultMutableTreeNode miRaiz =  new  DefaultMutableTreeNode("Imports");
		
		for (Import impoort : importaciones) 
		{	
			miRaiz.add(impoort.getArbolVisual());	
		}
		return miRaiz;
	}
	
	
	
//	-------------------------------------------------------------------------------------------------
//	Getters & Setters
//	-------------------------------------------------------------------------------------------------	
	

	/**
	 * Metodo que nos retorna el valor de importaciones
	 * @return  importaciones. Valor retornado
	 */
	public ArrayList<Import> getImportaciones() {
		return importaciones;
	}


	/**
	 * Metodo que permite asignar el valor de importaciones
	 * @param importaciones. Valor a asignar importaciones
	 */
	public void setImportaciones(ArrayList<Import> importaciones) {
		this.importaciones = importaciones;
	}
}
